554. 砖墙

554. 砖墙

Similar Question

leading to the advanced question

Solution Tips

方案一: 哈希统计

var leastBricks = function(wall) {
    const map = {};
    // 一堵墙总的宽度是固定的, 比如 6, 刨除 0 和 6, 一共剩下 5 个可能的位置, 可以穿线
    for (let row = 0; row < wall.length; row++) {
        let col = 0;
        for (let i = 0; i < wall[row].length - 1; i++) {
            const block = wall[row][i];
            // 前面的累计宽度, 代表了当前槽位的索引, 最后一块砖不用统计
            col += block;
            map[col] = (map[col] || 0) + 1;
        }
    }

    const max = Object.keys(map).reduce((max, col) => Math.max(max, map[col]), 0);
    return wall.length - max;
};

console.log(leastBricks([[1,2,2,1],[3,1,2],[1,3,2],[2,4],[3,1,2],[1,3,1,1]]));